package com.gjintel.business.report.service;

import com.gjintel.auction.business.model.AuctionInfo;
import com.gjintel.business.proj.model.DepositReturn;
import com.gjintel.business.proj.model.ProjectInfo;
import com.gjintel.framework.register.model.DepositCategory;
import com.gjintel.sdk.base.dao.Page;
import com.gjintel.sdk.base.dao.Sort;
import com.gjintel.sdk.base.service.IBaseService;

import java.math.BigDecimal;
import java.sql.Date;
import java.util.List;

public interface IAuctionReportService extends IBaseService {


	/**
  	 * @description 协议保证金统计
  	 * @author shy
  	 */
      public List<DepositCategory> listAuction();

    /**
  	 * @description 获取保证金明细单
  	 * @author shy
  	 * @param projectName
  	 */
  	public List<DepositReturn> getAuctionDepositList(String projectName, String code, Page page, Integer depositType, String projectType);

  	 /**
  	 * @description 获取保证金明细单导出
  	 * @author shy
  	 * @param projectName
  	 */
  	public List<DepositReturn> getAuctionDepositListExport(String projectName, String code, Integer depositType, String projectType);

  	/**
  	 * 查询交易项目情况列表
  	 * @param auction
  	 * @param page
  	 * @param sort
  	 * @param startTime
  	 * @param stopTime
  	 * @return
  	 */
  	public List<AuctionInfo> findAuctionReportByProjectCase(AuctionInfo auction, Page page, Sort sort, Date startTime, Date stopTime);

  	/**
  	 * 按时间段查询保证金统计
  	 * @param startTime
  	 * @param stopTime
  	 * @return
  	 */


	public BigDecimal findAuctionDepositAmountByDate(Integer depositType, Integer status, Date startTime, Date stopTime, String className);

	/**
	 * 查询保证金集合
	 * @param className
	 * @param satus
	 * @return
	 */
	public List findAuctionDepositListByDate(Page page, Integer depositType, Integer satus, Date startTime, Date stopTime, String className);

	
	/**
	 * 查询项目列表(消息管理员，有开标时间的)
	 * @param project
	 * @param page
	 * @param sort
	 * @param startTime
	 * @param stopTime
	 */
	public List findAuctionReportByProjectList(ProjectInfo project, Page page, Sort sort, Date startTime, Date stopTime);
	
	/**
	 * 查询未开标项目列表(分配人管理员，有开标时间的)
	 * @param project
	 * @param page
	 * @param sort
	 * @param startTime
	 * @param stopTime
	 */
	public List findAuctionReportByNoOpentBidProjectList(ProjectInfo project, Page page, Sort sort, Date startTime, Date stopTime);

}
